package com.cwj.text;

import java.io.*;
import java.util.Arrays;


class Test {

    /**
     * @param args
     */
    public static void main(String[] args) {

        // 1、创建一个文件对象
        File file = new File("C:\\Users\\抑~风\\Desktop\\机内码.txt");

        // 2、使用字节流对象读入内存

        try {
            InputStream fileIn = new FileInputStream(file);
            //DataInputStream in = new DataInputStream(fileIn);

            // 使用缓存区读入对象效率更快
            BufferedInputStream in = new BufferedInputStream(fileIn);
            byte[]num=new byte[30];
            in.read(num,0,30);
            System.out.println(bytesToHex(num,30));
            FileOutputStream fileOut = new FileOutputStream("D:\\3.jpg");
            DataOutputStream dataOut = new DataOutputStream(fileOut);

            // 使用缓存区写入对象效率更快
            //BufferedOutputStream dataOut=new BufferedOutputStream(fileOut);
//            int temp;
//            while ((temp = in.read()) != -1) {
//                dataOut.write(temp);
//            }

        } catch (FileNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

    }
    /**
     * 字节数组转16进制
     * @param bytes 需要转换的byte数组
     * @return  转换后的Hex字符串
     */
    public static String bytesToHex(byte[] bytes,int len) {
        StringBuffer sb = new StringBuffer();
        for(int i = 0; i < len; i++) {
            String hex = Integer.toHexString(bytes[i] & 0xFF);
            if(hex.length() < 2){
                sb.append(0);
            }
            sb.append(hex);
            sb.append(" ");
        }
        return sb.toString();
    }

}